﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Banesco.Entidades;
using System.Data;


namespace Banesco.Logica
{
    public class BSBanesco
    {
        private WSBanesco.WSBanesco wsBanesco;

        private Banesco.Logica.WSBanesco.UsuarioBase helperUsuario(UsuarioBase Usuario, ref Banesco.Logica.WSBanesco.UsuarioBase wsUsuario)
        {
            if (wsUsuario == null)
            {
                wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
            }

            wsUsuario.IdCliente = Usuario.IdCliente;
            wsUsuario.Identificacion = Usuario.Identificacion;
            wsUsuario.SeguroSocial = Usuario.SeguroSocial;
            wsUsuario.Cliente = Usuario.Cliente;
            wsUsuario.TipoIdentificacion = Usuario.TipoIdentificacion;
            wsUsuario.TipoCliente = Usuario.TipoCliente;
            wsUsuario.Pais = Usuario.Pais;
            wsUsuario.Email = Usuario.Email;
            wsUsuario.Estado = Usuario.Estado;
            wsUsuario.PC = Usuario.PC;
            wsUsuario.PrimerNombre = Usuario.PrimerNombre;
            wsUsuario.SegundoNombre = Usuario.SegundoNombre;
            wsUsuario.PrimerApellido = Usuario.PrimerApellido;
            wsUsuario.SegundoApellido = Usuario.SegundoApellido;
            wsUsuario.ApellidoDeCasada = Usuario.ApellidoDeCasada;
            wsUsuario.Sexo = Usuario.Sexo;
            wsUsuario.EstadoCivil = Usuario.EstadoCivil;
            wsUsuario.FechaDeNacimiento = Usuario.FechaDeNacimiento;
            wsUsuario.Edad = Usuario.Edad;
            wsUsuario.Provincia = Usuario.Provincia;
            wsUsuario.Distrito = Usuario.Distrito;
            wsUsuario.Corregimiento = Usuario.Corregimiento;
            wsUsuario.Barrio = Usuario.Barrio;
            wsUsuario.Calle = Usuario.Calle;
            wsUsuario.Residencia = Usuario.Residencia;
            wsUsuario.NumeroCasa = Usuario.NumeroCasa;
            wsUsuario.ApartadoPostal = Usuario.ApartadoPostal;
            wsUsuario.UbicacionFacilResidencia = Usuario.UbicacionFacilResidencia;
            wsUsuario.ResidenteEnPanama = Usuario.ResidenteEnPanama;
            wsUsuario.ClienteOtroPais = Usuario.ClienteOtroPais;
            wsUsuario.TelefonoCasa = Usuario.TelefonoCasa;
            wsUsuario.TelefonoCelular = Usuario.TelefonoCelular;
            wsUsuario.OtroTelefono = Usuario.OtroTelefono;
            wsUsuario.NombreEmpresa = Usuario.NombreEmpresa;
            wsUsuario.CodigoIndustria = Usuario.CodigoIndustria;
            wsUsuario.TipoEmpresa = Usuario.TipoEmpresa;
            wsUsuario.TipoNegocio = Usuario.TipoNegocio;
            wsUsuario.DireccionEmpleo = Usuario.DireccionEmpleo;
            wsUsuario.TelefonoOficina = Usuario.TelefonoOficina;
            wsUsuario.TelefonoFax = Usuario.TelefonoFax;
            wsUsuario.IdentificacionContraloria = Usuario.IdentificacionContraloria;
            wsUsuario.NumeroDeEmpleado = Usuario.NumeroDeEmpleado;
            wsUsuario.FechaIngresoEmpleo = Usuario.FechaIngresoEmpleo;
            wsUsuario.TiempoDeEmpleo = Usuario.TiempoDeEmpleo;
            wsUsuario.CorreoDeEmpleo = Usuario.CorreoDeEmpleo;
            wsUsuario.RangoSalarial = Usuario.RangoSalarial;
            wsUsuario.SalarioActual = Usuario.SalarioActual;
            wsUsuario.NivelEducacion = Usuario.NivelEducacion;
            wsUsuario.Profesion = Usuario.Profesion;
            wsUsuario.FuenteDeIngreso = Usuario.FuenteDeIngreso;
            wsUsuario.Cargo = Usuario.Cargo;
            wsUsuario.TipoDeActividad = Usuario.TipoDeActividad;
            wsUsuario.CuentaAhorros = Usuario.CuentaAhorros;
            wsUsuario.CuentaCorriente = Usuario.CuentaCorriente;
            wsUsuario.BancaEnLinea = Usuario.BancaEnLinea;
            wsUsuario.VisaDebito = Usuario.VisaDebito;
            wsUsuario.SucursalDePreferencia = Usuario.SucursalDePreferencia;
            wsUsuario.NombreLegal = Usuario.NombreLegal;
            wsUsuario.NombreComercial = Usuario.NombreComercial;
            wsUsuario.NoRegistroDeSociedad = Usuario.NoRegistroDeSociedad;
            wsUsuario.TipoSociedad = Usuario.TipoSociedad;
            wsUsuario.PaisRegistroSociedad = Usuario.PaisRegistroSociedad;
            wsUsuario.FechaRegistro = Usuario.FechaRegistro;
            wsUsuario.FechaInicioOperaciones = Usuario.FechaInicioOperaciones;
            wsUsuario.VolumenMensualVentas = Usuario.VolumenMensualVentas;
            wsUsuario.TelefonoOficina2 = Usuario.TelefonoOficina2;
            wsUsuario.EsTitular = Usuario.EsTitular;
            wsUsuario.EsFirmante = Usuario.EsFirmante;
            wsUsuario.FechaCreacionCuenta = Usuario.FechaCreacionCuenta;
            wsUsuario.EstadoSolicitud = Usuario.EstadoSolicitud;
            wsUsuario.IdSolicitud = Usuario.IdSolicitud;


            // NUEVOS CAMPOS 22 DE NOVIEMBRE DE 2010
            wsUsuario.Ciudad = Usuario.Ciudad;
            wsUsuario.Direccion = Usuario.Direccion;
            wsUsuario.OtrosIngresos = Usuario.OtrosIngresos;
            wsUsuario.FuenteOtrosIngresos = Usuario.FuenteOtrosIngresos;
            wsUsuario.PaisEmpleo = Usuario.PaisEmpleo;
            wsUsuario.ProvinciaEmpleo = Usuario.ProvinciaEmpleo;
            wsUsuario.DistritoEmpleo = Usuario.DistritoEmpleo;
            wsUsuario.CorregimientoEmpleo = Usuario.CorregimientoEmpleo;
            wsUsuario.BarrioEmpleo = Usuario.BarrioEmpleo;
            wsUsuario.ResidenciaEmpleo = Usuario.ResidenciaEmpleo;
            wsUsuario.NumeroCasaEmpleo = Usuario.NumeroCasaEmpleo;
            wsUsuario.UbicacionFacilEmpleo = Usuario.UbicacionFacilEmpleo;
            wsUsuario.CalleEmpleo = Usuario.CalleEmpleo;
            wsUsuario.TipoFirma = Usuario.TipoFirma;
            wsUsuario.OrigenFondoTrabajo = Usuario.OrigenFondoTrabajo;
            wsUsuario.OrigenFondoHerencia = Usuario.OrigenFondoHerencia;
            wsUsuario.OrigenFondoVenta = Usuario.OrigenFondoVenta;
            wsUsuario.OrigenFondoInversiones = Usuario.OrigenFondoInversiones;
            wsUsuario.OrigenFondoServiciosPrestados = Usuario.OrigenFondoServiciosPrestados;
            wsUsuario.OrigenFondoReciboDeDividendos = Usuario.OrigenFondoReciboDeDividendos;
            wsUsuario.OrigenFondoEspecificacion = Usuario.OrigenFondoEspecificacion;
            wsUsuario.MontoApertura = Usuario.MontoApertura;
            wsUsuario.UsoDeLaCuenta = Usuario.UsoDeLaCuenta;
            wsUsuario.ModoAperturaEfectivo = Usuario.ModoAperturaEfectivo;
            wsUsuario.ModoAperturaTransferencia = Usuario.ModoAperturaTransferencia;
            wsUsuario.ModoAperturaChequeLocal = Usuario.ModoAperturaChequeLocal;
            wsUsuario.ModoAperturaChequeExtranjero = Usuario.ModoAperturaChequeExtranjero;
            wsUsuario.ModoAperturaChequeGerenciaBanesco = Usuario.ModoAperturaChequeGerenciaBanesco;
            wsUsuario.ModoAperturaChequeGerenciaOtroBanco = Usuario.ModoAperturaChequeGerenciaOtroBanco;
            wsUsuario.ModoAperturaChequePropio = Usuario.ModoAperturaChequePropio;
            wsUsuario.ModoAperturaDebitoACuenta = Usuario.ModoAperturaDebitoACuenta;
            wsUsuario.ModoAperturaOtros = Usuario.ModoAperturaOtros;
            wsUsuario.ModoAperturaOtrosEspecificacion = Usuario.ModoAperturaOtrosEspecificacion;
            wsUsuario.NumeroDepositosRetirosAlMes = Usuario.NumeroDepositosRetirosAlMes;
            wsUsuario.MontoDepositosRetirosAlMes = Usuario.MontoDepositosRetirosAlMes;
            wsUsuario.SePermitenTransferencias = Usuario.SePermitenTransferencias;
            wsUsuario.NumeroTransferenciasEmitidas = Usuario.NumeroTransferenciasEmitidas;
            wsUsuario.MontoTransferenciasEmitidas = Usuario.MontoTransferenciasEmitidas;
            wsUsuario.NumeroTransferenciasRecibidas = Usuario.NumeroTransferenciasRecibidas;
            wsUsuario.MontoTransferenciasRecibidas = Usuario.MontoTransferenciasRecibidas;
            wsUsuario.NumeroRetirosEnEfectivo = Usuario.NumeroRetirosEnEfectivo;
            wsUsuario.MontoRetirosEnEfectivo = Usuario.MontoRetirosEnEfectivo;
            wsUsuario.NumeroDepositosEnEfectivo = Usuario.NumeroDepositosEnEfectivo;
            wsUsuario.MontoDepositosEnEfectivo = Usuario.MontoDepositosEnEfectivo;
            wsUsuario.NumeroDepositosOtros = Usuario.NumeroDepositosOtros;
            wsUsuario.MontoDepositosOtros = Usuario.MontoDepositosOtros;
            wsUsuario.PaisTransferencia1 = Usuario.PaisTransferencia1;
            wsUsuario.PaisTransferencia1Env = Usuario.PaisTransferencia1Env;
            wsUsuario.PaisTransferencia1Rec = Usuario.PaisTransferencia1Rec;
            wsUsuario.PaisTransferencia2 = Usuario.PaisTransferencia2;
            wsUsuario.PaisTransferencia2Env = Usuario.PaisTransferencia2Env;
            wsUsuario.PaisTransferencia2Rec = Usuario.PaisTransferencia2Rec;
            wsUsuario.PaisTransferencia3 = Usuario.PaisTransferencia3;
            wsUsuario.PaisTransferencia3Env = Usuario.PaisTransferencia3Env;
            wsUsuario.PaisTransferencia3Rec = Usuario.PaisTransferencia3Rec;
            wsUsuario.PaisTransferencia4 = Usuario.PaisTransferencia4;
            wsUsuario.PaisTransferencia4Env = Usuario.PaisTransferencia4Env;
            wsUsuario.PaisTransferencia4Rec = Usuario.PaisTransferencia4Rec;
            wsUsuario.EsPEP = Usuario.EsPEP;
            wsUsuario.EsIntermediario = Usuario.EsIntermediario;
            wsUsuario.NombrePropietarioFondos = Usuario.NombrePropietarioFondos;
            wsUsuario.TipoIdentificacionPropietarioFondos = Usuario.TipoIdentificacionPropietarioFondos;
            wsUsuario.IdentificacionPropietarioFondos = Usuario.IdentificacionPropietarioFondos;
            wsUsuario.DireccionEntregaVisaDebito = Usuario.DireccionEntregaVisaDebito;
            wsUsuario.DireccionEntregaBancaEnLinea = Usuario.DireccionEntregaBancaEnLinea;
            wsUsuario.SeguroFraudeVisaDebito = Usuario.SeguroFraudeVisaDebito;
            wsUsuario.Chequera = Usuario.Chequera;
            wsUsuario.CantidadChequera = Usuario.CantidadChequera;

            wsUsuario.OrigenDeLosFondos = Usuario.OrigenDeLosFondos;
            wsUsuario.EsBeneficiario = Usuario.EsBeneficiario;
            wsUsuario.CiudadEmpleo = Usuario.CiudadEmpleo;
            wsUsuario.ApartadoPostalEmpleo = Usuario.ApartadoPostalEmpleo;
            wsUsuario.CodigoEstadoSolicitud = Usuario.CodigoEstadoSolicitud;

            #region Xml.Data.Pro.Information

            TipoCliente tipoClientes = new TipoCliente();
            if (Usuario.TipoCliente == "CORPO")
                tipoClientes = TipoCliente.Juridico;
            else
                tipoClientes = TipoCliente.Natural;

            HelperDB helperXml = new HelperDB(Usuario, tipoClientes);
            object objResult = null;
            wsUsuario.XMLMessage = helperXml.msgInformation(false, false, ref objResult);

            #endregion

            return wsUsuario;


        }

        public List<T> CollectionData<T>(DataTable tablaFirmTit, UsuarioBase userBase) where T : new()
        {
            List<T> collection = new List<T>();
            Type type = typeof(T);
            foreach (var item in tablaFirmTit.AsEnumerable())
            {
                TipoCliente tipoC = new TipoCliente();
                T obj = new T();

                object objT = new object();
                if (item.Field<string>("EsTitular").Equals("S"))
                {
                    tipoC = TipoCliente.Natural;
                    HelperDB inst = new HelperDB(item, tipoC, userBase);
                    inst.msgInformation(true, false, ref objT);
                    collection.Add((T)objT);
                }
                else
                {
                    tipoC = TipoCliente.Juridico;
                    HelperDB inst = new HelperDB(item, tipoC, userBase);
                    inst.msgInformation(true, false, ref objT);
                    collection.Add((T)objT);
                }
            }

            return collection;
        }

        private Banesco.Logica.WSBanesco.UsuarioSistema helperUsuarioSistema(UsuarioSistema UsuarioSistema, ref Banesco.Logica.WSBanesco.UsuarioSistema wsUsuarioSistema)
        {
            if (wsUsuarioSistema == null)
            {
                wsUsuarioSistema = new Banesco.Logica.WSBanesco.UsuarioSistema();
            }

            wsUsuarioSistema.IDUsuario = UsuarioSistema.IDUsuario;
            wsUsuarioSistema.NombreUsuario = UsuarioSistema.NombreUsuario;
            wsUsuarioSistema.Contraseña = UsuarioSistema.Contraseña;
            wsUsuarioSistema.NombreUsuarioSistema = UsuarioSistema.NombreUsuarioSistema;
            wsUsuarioSistema.NombreCompleto = UsuarioSistema.NombreCompleto;
            wsUsuarioSistema.NumeroTelefono = UsuarioSistema.NumeroTelefono;
            wsUsuarioSistema.CorreoElectronico = UsuarioSistema.CorreoElectronico;
            wsUsuarioSistema.Estado = UsuarioSistema.Estado;
            wsUsuarioSistema.IDUsuarioCreador = UsuarioSistema.IDUsuario;
            wsUsuarioSistema.FechaCreacion = UsuarioSistema.FechaCreacion;
            wsUsuarioSistema.IDUsuarioModificacion = UsuarioSistema.IDUsuarioModificacion;
            wsUsuarioSistema.FechaModificacion = UsuarioSistema.FechaModificacion;
            wsUsuarioSistema.FechaModificacionContraseña = UsuarioSistema.FechaModificacionContraseña;



            return wsUsuarioSistema;
        }

        public Mensaje LlenarDatosTitularesFirmantes(DataTable dtDatos, ref TitularesFirmantes TitularesFirmantes)
        {
            Mensaje retMensaje = new Mensaje();
            int i = 0;
            foreach (DataRow dataRow in dtDatos.Rows)
            {
                try
                {
                    DataRow drDatos = dtDatos.Rows[i];
                    TitularesFirmantes.IdCliente = Convert.ToInt32(drDatos["IdCliente"]);
                    TitularesFirmantes.Identificacion = Convert.ToString(drDatos["Identificacion"]);
                    TitularesFirmantes.SeguroSocial = Convert.ToString(drDatos["SeguroSocial"]);
                    TitularesFirmantes.TipoIdentificacion = Convert.ToString(drDatos["TipoIdentificacion"]);
                    TitularesFirmantes.TipoCliente = Convert.ToString(drDatos["TipoCliente"]);
                    TitularesFirmantes.Pais = Convert.ToString(drDatos["Pais"]);
                    TitularesFirmantes.Email = Convert.ToString(drDatos["Email"]);
                    TitularesFirmantes.PrimerNombre = Convert.ToString(drDatos["PrimerNombre"]);
                    TitularesFirmantes.SegundoNombre = Convert.ToString(drDatos["SegundoNombre"]);
                    TitularesFirmantes.PrimerApellido = Convert.ToString(drDatos["PrimerApellido"]);
                    TitularesFirmantes.SegundoApellido = Convert.ToString(drDatos["SegundoApellido"]);
                    TitularesFirmantes.ApellidoDeCasada = Convert.ToString(drDatos["ApellidoDeCasada"]);
                    TitularesFirmantes.Sexo = Convert.ToString(drDatos["Sexo"]);
                    TitularesFirmantes.EstadoCivil = Convert.ToString(drDatos["EstadoCivil"]);
                    TitularesFirmantes.FechaDeNacimiento = Convert.ToDateTime(drDatos["FechaDeNacimiento"]);
                    TitularesFirmantes.Provincia = Convert.ToString(drDatos["Provincia"]);
                    TitularesFirmantes.Distrito = Convert.ToString(drDatos["Distrito"]);
                    TitularesFirmantes.Corregimiento = Convert.ToString(drDatos["Corregimiento"]);
                    TitularesFirmantes.Barrio = Convert.ToString(drDatos["Barrio"]);
                    TitularesFirmantes.Calle = Convert.ToString(drDatos["Calle"]);
                    TitularesFirmantes.Residencia = Convert.ToString(drDatos["Residencia"]);
                    TitularesFirmantes.NumeroCasa = Convert.ToString(drDatos["NumeroCasa"]);
                    TitularesFirmantes.ApartadoPostal = Convert.ToString(drDatos["ApartadoPostal"]);
                    TitularesFirmantes.UbicacionFacilResidencia = Convert.ToString(drDatos["UbicacionFacilResidencia"]);
                    TitularesFirmantes.Telefono1 = Convert.ToString(drDatos["Telefono1"]);
                    TitularesFirmantes.Telefono2 = Convert.ToString(drDatos["Telefono2"]);
                    TitularesFirmantes.Telefono3 = Convert.ToString(drDatos["Telefono3"]);
                    TitularesFirmantes.NombreEmpresa = Convert.ToString(drDatos["NombreEmpresa"]);
                    TitularesFirmantes.CodigoIndustria = Convert.ToString(drDatos["CodigoIndustria"]);
                    TitularesFirmantes.TipoEmpresa = Convert.ToString(drDatos["TipoEmpresa"]);
                    TitularesFirmantes.TipoNegocio = Convert.ToString(drDatos["TipoNegocio"]);
                    TitularesFirmantes.DireccionEmpleo = Convert.ToString(drDatos["DireccionEmpleo"]);
                    TitularesFirmantes.TelefonoOficina = Convert.ToString(drDatos["TelefonoOficina"]);
                    TitularesFirmantes.TelefonoFax = Convert.ToString(drDatos["TelefonoFax"]);
                    TitularesFirmantes.IdentificacionContraloria = Convert.ToString(drDatos["IdentificacionContraloria"]);
                    TitularesFirmantes.NumeroDeEmpleado = Convert.ToString(drDatos["NumeroDeEmpleado"]);
                    TitularesFirmantes.FechaIngresoEmpleo = Convert.ToDateTime(drDatos["FechaIngresoEmpleo"]);
                    TitularesFirmantes.TiempoDeEmpleo = Convert.ToString(drDatos["TiempoDeEmpleo"]);
                    TitularesFirmantes.CorreoDeEmpleo = Convert.ToString(drDatos["CorreoDeEmpleo"]);
                    TitularesFirmantes.RangoSalarial = Convert.ToString(drDatos["RangoSalarial"]);
                    TitularesFirmantes.SalarioActual = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["SalarioActual"].ToString()));
                    TitularesFirmantes.NivelEducacion = Convert.ToString(drDatos["NivelEducacion"]);
                    TitularesFirmantes.Profesion = Convert.ToString(drDatos["Profesion"]);
                    TitularesFirmantes.FuenteDeIngreso = Convert.ToString(drDatos["FuenteDeIngreso"]);
                    TitularesFirmantes.Cargo = Convert.ToString(drDatos["Cargo"]);
                    TitularesFirmantes.TipoDeActividad = Convert.ToString(drDatos["TipoDeActividad"]);
                    TitularesFirmantes.EsTitular = Convert.ToString(drDatos["EsTitular"]);
                    TitularesFirmantes.EsFirmante = Convert.ToString(drDatos["EsFirmante"]);
                    TitularesFirmantes.FechaCreacionCuenta = Convert.ToDateTime(drDatos["FechaCreacionCuenta"]);
                    TitularesFirmantes.OtrosIngresos = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["OtrosIngresos"].ToString()));// == null ?  0 : drDatos["OtrosIngresos"] );
                    TitularesFirmantes.FuenteOtrosIngresos = Convert.ToString(drDatos["FuenteOtrosIngresos"]);
                    TitularesFirmantes.PaisEmpleo = Convert.ToString(drDatos["PaisEmpleo"]);
                    TitularesFirmantes.ProvinciaEmpleo = Convert.ToString(drDatos["ProvinciaEmpleo"]);
                    TitularesFirmantes.DistritoEmpleo = Convert.ToString(drDatos["DistritoEmpleo"]);
                    TitularesFirmantes.CorregimientoEmpleo = Convert.ToString(drDatos["CorregimientoEmpleo"]);
                    TitularesFirmantes.BarrioEmpleo = Convert.ToString(drDatos["BarrioEmpleo"]);
                    TitularesFirmantes.ResidenciaEmpleo = Convert.ToString(drDatos["ResidenciaEmpleo"]);
                    TitularesFirmantes.NumeroCasaEmpleo = Convert.ToString(drDatos["NumeroCasaEmpleo"]);
                    TitularesFirmantes.UbicacionFacilEmpleo = Convert.ToString(drDatos["UbicacionFacilEmpleo"]);
                    TitularesFirmantes.CalleEmpleo = Convert.ToString(drDatos["CalleEmpleo"]);
                    TitularesFirmantes.Ciudad = Convert.ToString(drDatos["Ciudad"]);
                    TitularesFirmantes.Direccion = Convert.ToString(drDatos["Direccion"]);
                    TitularesFirmantes.ApartadoPostalEmpleo = Convert.ToString(drDatos["ApartadoPostalEmpleo"]);

                }
                catch (Exception ex)
                {
                    retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                    retMensaje.Error = ex.StackTrace;
                    retMensaje.MensajeTecnico = ex.Message;
                }
                i++;
            }
            return retMensaje;

        }

        public Mensaje RegistrarCliente(string Cliente, string TipoCliente, string Email, string Estado, string PC, ref int IDSolicitud, string IP)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).RegistrarCliente(Cliente, TipoCliente, Email, Estado, PC, ref IDSolicitud, IP));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        public Mensaje RegistrarMensaje(string Identificacion, string MensajeE)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).RegistrarMensaje(Identificacion, MensajeE));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje VerificarEstadoSolicitud(int IdSolicitud, ref string estadoSolicitud)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).VerificarEstadoSolicitud(IdSolicitud, ref estadoSolicitud));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje VerificarIntentosDeRegistro(string EmailCliente, ref int times)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).VerificarIntentosDeRegistro(EmailCliente, ref times));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje VerificarIntentosIP(string IP, ref int timesIP)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).VerificarIntentosIP(IP, ref timesIP));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerMensajesErrores(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerMensajesErrores(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerRangoSalarial(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerRangoSalarial(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerEstadoCivil(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerEstadoCivil(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerSucursales(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerSucursales(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerPaises(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerPaises(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerProvincias(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerProvincias(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerDistritos(ref DataSet dsDatos, string idProvincia)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerDistritos(ref dsDatos, idProvincia));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerCorregimientos(ref DataSet dsDatos, string idDistrito)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerCorregimientos(ref dsDatos, idDistrito));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerTipoIdentificacion(ref DataSet dsDatos, string tipo)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerTipoIdentificacion(ref dsDatos, tipo));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerEstadoSolicitud(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerEstadoSolicitud(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerTipoActividadEconomica(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerTipoActividadEconomica(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerNivelEducacion(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerNivelEducacion(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerTipoCliente(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerTipoCliente(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }


        public Mensaje ObtenerProfesion(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerProfesion(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }


        public Mensaje ObtenerTipoNegocio(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerTipoNegocio(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }



        public Mensaje ObtenerCodigoIndustria(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerCodigoIndustria(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }


        public Mensaje ObtenerTipoEmpresa(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerTipoEmpresa(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }



        public Mensaje ObtenerFuenteIngreso(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerFuenteIngreso(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }


        public Mensaje ObtenerOrigenFondos(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerOrigenFondos(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ObtenerReferenciasPersonales(ref UsuarioBase Usuario, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();
            //DataSet dsDatos = new DataSet();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerReferenciasPersonales(Usuario.IdSolicitud, ref dsDatos));
                //  retMensaje = LlenarDatos(dsDatos, ref Usuario);
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }



        public Mensaje ObtenerDatosCliente(ref UsuarioBase Usuario)
        {
            Mensaje retMensaje = new Mensaje();
            DataSet dsDatos = new DataSet();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ObtenerDatosCliente(Usuario.IdSolicitud, ref dsDatos));
                retMensaje = LlenarDatos(dsDatos, ref Usuario);
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje LlenarDatos(DataSet dsDatos, ref UsuarioBase Usuario)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {

                DataRow drDatos = dsDatos.Tables[0].Rows[0];

                Usuario.IdCliente = Convert.ToInt32(drDatos["IdCliente"]);
                //Usuario.IdCuenta = Convert.ToInt32(drDatos["IdCuenta"]);
                Usuario.Identificacion = Convert.ToString(drDatos["Identificacion"]);
                Usuario.SeguroSocial = Convert.ToString(drDatos["SeguroSocial"]);
                Usuario.Cliente = Convert.ToString(drDatos["Cliente"]);
                Usuario.TipoIdentificacion = Convert.ToString(drDatos["TipoIdentificacion"]);
                Usuario.TipoCliente = Convert.ToString(drDatos["TipoCliente"]);
                Usuario.Pais = Convert.ToString(drDatos["Pais"]);
                Usuario.Email = Convert.ToString(drDatos["Email"]);
                Usuario.Estado = Convert.ToString(drDatos["Estado"]);
                Usuario.PC = Convert.ToString(drDatos["Pc"]);

                Usuario.PrimerNombre = Convert.ToString(drDatos["PrimerNombre"]);
                Usuario.SegundoNombre = Convert.ToString(drDatos["SegundoNombre"]);
                Usuario.PrimerApellido = Convert.ToString(drDatos["PrimerApellido"]);
                Usuario.SegundoApellido = Convert.ToString(drDatos["SegundoApellido"]);
                Usuario.ApellidoDeCasada = Convert.ToString(drDatos["ApellidoDeCasada"]);
                Usuario.Sexo = Convert.ToString(drDatos["Sexo"]);
                Usuario.EstadoCivil = Convert.ToString(drDatos["EstadoCivil"]);
                Usuario.FechaDeNacimiento = Convert.ToDateTime(drDatos["FechaDeNacimiento"]);
                Usuario.Edad = Convert.ToInt32(drDatos["Edad"]);
                Usuario.Provincia = Convert.ToString(drDatos["Provincia"]);
                Usuario.Distrito = Convert.ToString(drDatos["Distrito"]);
                Usuario.Corregimiento = Convert.ToString(drDatos["Corregimiento"]);
                Usuario.Barrio = Convert.ToString(drDatos["Barrio"]);
                Usuario.Calle = Convert.ToString(drDatos["Calle"]);
                Usuario.Residencia = Convert.ToString(drDatos["Residencia"]);
                Usuario.NumeroCasa = Convert.ToString(drDatos["NumeroCasa"]);
                Usuario.ApartadoPostal = Convert.ToString(drDatos["ApartadoPostal"]);
                //Usuario.CodigoPostal = Convert.ToString(drDatos["CodigoPostal"]);
                Usuario.UbicacionFacilResidencia = Convert.ToString(drDatos["UbicacionFacilResidencia"]);
                Usuario.ResidenteEnPanama = Convert.ToString(drDatos["ResidenteEnPanama"]);
                Usuario.ClienteOtroPais = Convert.ToString(drDatos["ClienteOtroPais"]);
                Usuario.TelefonoCasa = Convert.ToString(drDatos["TelefonoCasa"]);
                Usuario.TelefonoCelular = Convert.ToString(drDatos["TelefonoCelular"]);
                Usuario.OtroTelefono = Convert.ToString(drDatos["OtroTelefono"]);
                Usuario.NombreEmpresa = Convert.ToString(drDatos["NombreEmpresa"]);
                Usuario.CodigoIndustria = Convert.ToString(drDatos["CodigoIndustria"]);
                Usuario.TipoEmpresa = Convert.ToString(drDatos["TipoEmpresa"]);
                Usuario.TipoNegocio = Convert.ToString(drDatos["TipoNegocio"]);
                Usuario.DireccionEmpleo = Convert.ToString(drDatos["DireccionEmpleo"]);
                Usuario.TelefonoOficina = Convert.ToString(drDatos["TelefonoOficina"]);
                Usuario.TelefonoFax = Convert.ToString(drDatos["TelefonoFax"]);
                Usuario.IdentificacionContraloria = Convert.ToString(drDatos["IdentificacionContraloria"]);
                Usuario.NumeroDeEmpleado = Convert.ToString(drDatos["NumeroDeEmpleado"]);
                Usuario.FechaIngresoEmpleo = Convert.ToDateTime(drDatos["FechaIngresoEmpleo"]);
                Usuario.TiempoDeEmpleo = Convert.ToString(drDatos["TiempoDeEmpleo"]);
                Usuario.CorreoDeEmpleo = Convert.ToString(drDatos["CorreoDeEmpleo"]);
                Usuario.RangoSalarial = Convert.ToString(drDatos["RangoSalarial"]);
                Usuario.SalarioActual = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["SalarioActual"].ToString()));
                Usuario.NivelEducacion = Convert.ToString(drDatos["NivelEducacion"]);
                Usuario.Profesion = Convert.ToString(drDatos["Profesion"]);
                Usuario.FuenteDeIngreso = Convert.ToString(drDatos["FuenteDeIngreso"]);
                Usuario.Cargo = Convert.ToString(drDatos["Cargo"]);
                Usuario.TipoDeActividad = Convert.ToString(drDatos["TipoDeActividad"]);
                Usuario.CuentaAhorros = Convert.ToString(drDatos["CuentaAhorros"]);
                Usuario.CuentaCorriente = Convert.ToString(drDatos["CuentaCorriente"]);
                Usuario.BancaEnLinea = Convert.ToString(drDatos["BancaEnLinea"]);
                Usuario.VisaDebito = Convert.ToString(drDatos["VisaDebito"]);
                Usuario.SucursalDePreferencia = Convert.ToString(drDatos["SucursalDePreferencia"]);
                Usuario.NombreLegal = Convert.ToString(drDatos["NombreLegal"]);
                Usuario.NombreComercial = Convert.ToString(drDatos["NombreComercial"]);
                Usuario.NoRegistroDeSociedad = Convert.ToString(drDatos["NoRegistroDeSociedad"]);
                Usuario.TipoSociedad = Convert.ToString(drDatos["TipoSociedad"]);
                Usuario.PaisRegistroSociedad = Convert.ToString(drDatos["PaisRegistroSociedad"]);
                Usuario.FechaRegistro = Convert.ToDateTime(drDatos["FechaRegistro"]);
                Usuario.FechaInicioOperaciones = Convert.ToDateTime(drDatos["FechaInicioOperaciones"]);
                Usuario.VolumenMensualVentas = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["VolumenMensualVentas"].ToString()));
                Usuario.TelefonoOficina2 = Convert.ToString(drDatos["TelefonoOficina2"]);
                Usuario.EsTitular = Convert.ToString(drDatos["EsTitular"]);
                Usuario.EsFirmante = Convert.ToString(drDatos["EsFirmante"]);
                Usuario.FechaCreacionCuenta = Convert.ToDateTime(drDatos["FechaCreacionCuenta"]);
                Usuario.EstadoSolicitud = Convert.ToString(drDatos["EstadoSolicitud"]);


                //NUEVOS DATOS DE USUARIO

                Usuario.OtrosIngresos = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["OtrosIngresos"].ToString()));// == null ?  0 : drDatos["OtrosIngresos"] );
                Usuario.FuenteOtrosIngresos = Convert.ToString(drDatos["FuenteOtrosIngresos"]);
                Usuario.PaisEmpleo = Convert.ToString(drDatos["PaisEmpleo"]);
                Usuario.ProvinciaEmpleo = Convert.ToString(drDatos["ProvinciaEmpleo"]);
                Usuario.DistritoEmpleo = Convert.ToString(drDatos["DistritoEmpleo"]);
                Usuario.CorregimientoEmpleo = Convert.ToString(drDatos["CorregimientoEmpleo"]);
                Usuario.BarrioEmpleo = Convert.ToString(drDatos["BarrioEmpleo"]);
                Usuario.ResidenciaEmpleo = Convert.ToString(drDatos["ResidenciaEmpleo"]);
                Usuario.NumeroCasaEmpleo = Convert.ToString(drDatos["NumeroCasaEmpleo"]);
                Usuario.UbicacionFacilEmpleo = Convert.ToString(drDatos["UbicacionFacilEmpleo"]);

                Usuario.CalleEmpleo = Convert.ToString(drDatos["CalleEmpleo"]);
                Usuario.TipoFirma = Convert.ToString(drDatos["TipoFirma"]);
                Usuario.OrigenFondoTrabajo = Convert.ToString(drDatos["OrigenFondoTrabajo"]);
                Usuario.OrigenFondoHerencia = Convert.ToString(drDatos["OrigenFondoHerencia"]);
                Usuario.OrigenFondoVenta = Convert.ToString(drDatos["OrigenFondoVenta"]);
                Usuario.OrigenFondoInversiones = Convert.ToString(drDatos["OrigenFondoInversiones"]);
                Usuario.OrigenFondoServiciosPrestados = Convert.ToString(drDatos["OrigenFondoServiciosPrestados"]);
                Usuario.OrigenFondoReciboDeDividendos = Convert.ToString(drDatos["OrigenFondoReciboDeDividendos"]);
                Usuario.OrigenFondoEspecificacion = Convert.ToString(drDatos["OrigenFondoEspecificacion"]);
                Usuario.MontoApertura = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["MontoApertura"].ToString()));
                Usuario.UsoDeLaCuenta = Convert.ToString(drDatos["UsoDeLaCuenta"]);
                Usuario.ModoAperturaEfectivo = Convert.ToString(drDatos["ModoAperturaEfectivo"]);
                Usuario.ModoAperturaTransferencia = Convert.ToString(drDatos["ModoAperturaTransferencia"]);
                Usuario.ModoAperturaChequeLocal = Convert.ToString(drDatos["ModoAperturaChequeLocal"]);
                Usuario.ModoAperturaChequeExtranjero = Convert.ToString(drDatos["ModoAperturaChequeExtranjero"]);
                Usuario.ModoAperturaChequeGerenciaBanesco = Convert.ToString(drDatos["ModoAperturaChequeGerenciaBanesco"]);
                Usuario.ModoAperturaChequeGerenciaOtroBanco = Convert.ToString(drDatos["ModoAperturaChequeGerenciaOtroBanco"]);
                Usuario.ModoAperturaChequePropio = Convert.ToString(drDatos["ModoAperturaChequePropio"]);
                Usuario.ModoAperturaDebitoACuenta = Convert.ToString(drDatos["ModoAperturaDebitoACuenta"]);
                Usuario.ModoAperturaOtros = Convert.ToString(drDatos["ModoAperturaOtros"]);
                Usuario.ModoAperturaOtrosEspecificacion = Convert.ToString(drDatos["ModoAperturaOtrosEspecificacion"]);
                Usuario.NumeroDepositosRetirosAlMes = Convert.ToInt32(ObtenerValorCadenaDatos(drDatos["NumeroDepositosRetirosAlMes"].ToString()));
                Usuario.MontoDepositosRetirosAlMes = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["MontoDepositosRetirosAlMes"].ToString()));
                Usuario.SePermitenTransferencias = Convert.ToString(drDatos["SePermitenTransferencias"]);
                Usuario.NumeroTransferenciasEmitidas = Convert.ToInt32(ObtenerValorCadenaDatos(drDatos["NumeroTransferenciasEmitidas"].ToString()));
                Usuario.MontoTransferenciasEmitidas = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["MontoTransferenciasEmitidas"].ToString()));
                Usuario.NumeroTransferenciasRecibidas = Convert.ToInt32(ObtenerValorCadenaDatos(drDatos["NumeroTransferenciasRecibidas"].ToString()));
                Usuario.MontoTransferenciasRecibidas = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["MontoTransferenciasRecibidas"].ToString()));
                Usuario.NumeroRetirosEnEfectivo = Convert.ToInt32(ObtenerValorCadenaDatos(drDatos["NumeroRetirosEnEfectivo"].ToString()));
                Usuario.MontoRetirosEnEfectivo = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["MontoRetirosEnEfectivo"].ToString()));
                Usuario.NumeroDepositosEnEfectivo = Convert.ToInt32(ObtenerValorCadenaDatos(drDatos["NumeroDepositosEnEfectivo"].ToString()));
                Usuario.MontoDepositosEnEfectivo = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["MontoDepositosEnEfectivo"].ToString()));
                Usuario.NumeroDepositosOtros = Convert.ToInt32(ObtenerValorCadenaDatos(drDatos["NumeroDepositosOtros"].ToString()));
                Usuario.MontoDepositosOtros = Convert.ToDecimal(ObtenerValorCadenaDatos(drDatos["MontoDepositosOtros"].ToString()));
                Usuario.PaisTransferencia1 = Convert.ToString(drDatos["PaisTransferencia1"]);
                Usuario.PaisTransferencia1Env = Convert.ToString(drDatos["PaisTransferencia1Env"]);
                Usuario.PaisTransferencia1Rec = Convert.ToString(drDatos["PaisTransferencia1Rec"]);
                Usuario.PaisTransferencia2 = Convert.ToString(drDatos["PaisTransferencia2"]);
                Usuario.PaisTransferencia2Env = Convert.ToString(drDatos["PaisTransferencia2Env"]);
                Usuario.PaisTransferencia2Rec = Convert.ToString(drDatos["PaisTransferencia2Rec"]);
                Usuario.PaisTransferencia3 = Convert.ToString(drDatos["PaisTransferencia3"]);
                Usuario.PaisTransferencia3Env = Convert.ToString(drDatos["PaisTransferencia3Env"]);
                Usuario.PaisTransferencia3Rec = Convert.ToString(drDatos["PaisTransferencia3Rec"]);
                Usuario.PaisTransferencia4 = Convert.ToString(drDatos["PaisTransferencia4"]);
                Usuario.PaisTransferencia4Env = Convert.ToString(drDatos["PaisTransferencia4Env"]);
                Usuario.PaisTransferencia4Rec = Convert.ToString(drDatos["PaisTransferencia4Rec"]);
                Usuario.EsPEP = Convert.ToString(drDatos["EsPEP"]);
                Usuario.EsIntermediario = Convert.ToString(drDatos["EsIntermediario"]);
                Usuario.NombrePropietarioFondos = Convert.ToString(drDatos["NombrePropietarioFondos"]);
                Usuario.TipoIdentificacionPropietarioFondos = Convert.ToString(drDatos["TipoIdentificacionPropietarioFondos"]);
                Usuario.IdentificacionPropietarioFondos = Convert.ToString(drDatos["IdentificacionPropietarioFondos"]);
                Usuario.DireccionEntregaVisaDebito = Convert.ToString(drDatos["DireccionEntregaVisaDebito"]);
                Usuario.DireccionEntregaBancaEnLinea = Convert.ToString(drDatos["DireccionEntregaBancaEnLinea"]);
                Usuario.SeguroFraudeVisaDebito = Convert.ToString(drDatos["SeguroFraudeVisaDebito"]);
                Usuario.Chequera = Convert.ToString(drDatos["Chequera"]);
                Usuario.CantidadChequera = Convert.ToInt32(ObtenerValorCadenaDatos(drDatos["CantidadChequera"].ToString()));
                Usuario.OrigenDeLosFondos = Convert.ToString(drDatos["OrigenDeLosFondos"]);
                Usuario.Ciudad = Convert.ToString(drDatos["Ciudad"]);
                Usuario.Direccion = Convert.ToString(drDatos["Direccion"]);
                Usuario.EsBeneficiario = Convert.ToString(drDatos["EsBeneficiario"]);
                Usuario.ApartadoPostalEmpleo = Convert.ToString(drDatos["ApartadoPostalEmpleo"]);
                Usuario.CodigoEstadoSolicitud = Convert.ToString(drDatos["CodigoEstado"]);



            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public string ObtenerValorCadenaDatos(string value)
        {
            string valorObtenido = "0";
            try
            {
                if (!String.IsNullOrEmpty(value))
                    valorObtenido = value;
            }
            catch
            { }

            return valorObtenido;
        }
        //public Mensaje GuardarCliente(string TipoIdentificacion, string NumeroIdentificacion, string NumeroSeguroSocial, string PrimerNombre, string SegundoNombre, string PrimerApellido, string SegundoApellido, string ApellidoCasada, string Sexo, string EstadoCivil, DateTime FechaNacimiento, int Edad, string Pais, string Provincia, string Distrito, string Corregimiento, string Barrio, string Calle, string Residencia, string NoCasa, string UbicacionFacilResidencia, string ApartadoPostal, string Email, string ClienteEnOtroPais, string ClientePais, string Telefono1, string Telefono2, string Telefono3, string NombreEmpresa, string CodigoIndustria, string TipoEmpresa, string TipoNegocio, string Correo, string DireccionEmpresa, string TelefonoOficina, string Fax, string IdentificacionContraloría, string NumeroEmpleado, string FechadeIngreso, string TiempoEmpleo, string RangoSalarial, string SalarioActual, string NivelEducacion, string Profesion, string FuenteDeIngreso, string Cargo, string TipoActividad)
        //    {

        //        Mensaje retMensaje = new Mensaje();


        //        try
        //        {

        //            retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).GuardarCliente(TipoIdentificacion, NumeroIdentificacion, NumeroSeguroSocial, PrimerNombre, SegundoNombre, PrimerApellido, SegundoApellido, ApellidoCasada, Sexo, EstadoCivil, FechaNacimiento, Edad, Pais, Provincia, Distrito, Corregimiento, Barrio, Calle, Residencia, NoCasa, UbicacionFacilResidencia, ApartadoPostal, Email, ClienteEnOtroPais, ClientePais, Telefono1, Telefono2, Telefono3, NombreEmpresa, CodigoIndustria, TipoEmpresa, TipoNegocio, Correo, DireccionEmpresa, TelefonoOficina, Fax, IdentificacionContraloría, NumeroEmpleado, FechadeIngreso, TiempoEmpleo, RangoSalarial, SalarioActual, NivelEducacion, Profesion, FuenteDeIngreso, Cargo, TipoActividad));

        //        }
        //        catch (Exception ex)
        //        {
        //            retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
        //            retMensaje.Error = ex.StackTrace;
        //            retMensaje.MensajeTecnico = ex.Message;
        //        }

        //        return retMensaje;





        //    }

        public Mensaje GuardarClienteNatural(UsuarioBase Usuario)
        {

            Mensaje retMensaje = new Mensaje();


            try
            {

                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).GuardarClienteNatural(helperUsuario(Usuario, ref wsUsuario)));
                //retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).GuardarCliente( Usuario)) ; //TipoIdentificacion, NumeroIdentificacion, NumeroSeguroSocial, PrimerNombre, SegundoNombre, PrimerApellido, SegundoApellido, ApellidoCasada, Sexo, EstadoCivil, FechaNacimiento, Edad, Pais, Provincia, Distrito, Corregimiento, Barrio, Calle, Residencia, NoCasa, UbicacionFacilResidencia, ApartadoPostal, Email, ClienteEnOtroPais, ClientePais, Telefono1, Telefono2, Telefono3, NombreEmpresa, CodigoIndustria, TipoEmpresa, TipoNegocio, Correo, DireccionEmpresa, TelefonoOficina, Fax, IdentificacionContraloría, NumeroEmpleado, FechadeIngreso, TiempoEmpleo, RangoSalarial, SalarioActual, NivelEducacion, Profesion, FuenteDeIngreso, Cargo, TipoActividad));

            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;





        }

        public Mensaje GuardarClienteJuridica(UsuarioBase Usuario)
        {

            Mensaje retMensaje = new Mensaje();


            try
            {

                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).GuardarClienteJuridica(helperUsuario(Usuario, ref wsUsuario)));
                //retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).GuardarCliente( Usuario)) ; //TipoIdentificacion, NumeroIdentificacion, NumeroSeguroSocial, PrimerNombre, SegundoNombre, PrimerApellido, SegundoApellido, ApellidoCasada, Sexo, EstadoCivil, FechaNacimiento, Edad, Pais, Provincia, Distrito, Corregimiento, Barrio, Calle, Residencia, NoCasa, UbicacionFacilResidencia, ApartadoPostal, Email, ClienteEnOtroPais, ClientePais, Telefono1, Telefono2, Telefono3, NombreEmpresa, CodigoIndustria, TipoEmpresa, TipoNegocio, Correo, DireccionEmpresa, TelefonoOficina, Fax, IdentificacionContraloría, NumeroEmpleado, FechadeIngreso, TiempoEmpleo, RangoSalarial, SalarioActual, NivelEducacion, Profesion, FuenteDeIngreso, Cargo, TipoActividad));

            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;





        }

        public Mensaje BuscarSolicitudes(ref DataSet dsDatos, string Nombres, int NumeroDeSolicitud, string NumeroDeIdentificacion, decimal MontoDeVentas, string PaisDeOrigen, string PaisDeResidencia, string CuentaEnOtroPais, string TipoDeBanca)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).BuscarSolicitudes(ref dsDatos, Nombres, NumeroDeSolicitud, NumeroDeIdentificacion, MontoDeVentas, PaisDeOrigen, PaisDeResidencia, CuentaEnOtroPais, TipoDeBanca));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje BuscarOFAC(ref DataSet dsDatos, string Nombres)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).BuscarOFAC(ref dsDatos, Nombres));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }


        public Mensaje BuscarListaPropia(ref DataSet dsDatos, string Nombres)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).BuscarListaPropia(ref dsDatos, Nombres));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje BuscarOtrosClientes(ref DataSet dsDatos, int IdSolicitud)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).BuscarOtrosClientes(ref dsDatos, IdSolicitud));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje NuevaConsultaValidaciones(ref int IdConsulta, String IdCliente, String UsuarioBanesco, String EsOFAC, String EsListaPropia)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).NuevaConsultaValidaciones(ref IdConsulta, IdCliente, UsuarioBanesco, EsOFAC, EsListaPropia));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }


        public Mensaje CoincideConsultaValidaciones(String Coincide, int IdConsulta)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).CoincideConsultaValidaciones(Coincide, IdConsulta));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje GuardarConsultaOFAC(int IdConsultaOFAC, String Nombre, String Direccion1, String Direccion2, String Direccion3, String Provincia, String Pais, String F7, String FechaInicial, String FuentedeDondeProvieneLaInformacion, String F10, String F11, String F12, String FechaPrimeraActualizacion, String ComentariosAdicionales, String F15, String F16, String FechaSegundaActualizacion, String F18, String F19)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).GuardarConsultaOFAC(IdConsultaOFAC, Nombre, Direccion1, Direccion2, Direccion3, Provincia, Pais, F7, FechaInicial, FuentedeDondeProvieneLaInformacion, F10, F11, F12, FechaPrimeraActualizacion, ComentariosAdicionales, F15, F16, FechaSegundaActualizacion, F18, F19));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje GuardarConsultaListaPropia(int IdConsultaListaPropia, String nombre, String localidad, String InformacionAdicional1, String InformacionAdicional2, String provincia, String Pais, String F7, String fechaEntrada, String F9, String volúmen, String página, String F12, String fechaActualizacion, String F14, String tipo, String F16, String Fecha, String F18, String cuenta)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).GuardarConsultaListaPropia(IdConsultaListaPropia, nombre, localidad, InformacionAdicional1, InformacionAdicional2, provincia, Pais, F7, fechaEntrada, F9, volúmen, página, F12, fechaActualizacion, F14, tipo, F16, Fecha, F18, cuenta));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje AtenderSolicitudes(UsuarioBase Usuario, string UsuarioModifica, String Observaciones, String Estado)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).AtenderSolicitudes(helperUsuario(Usuario, ref wsUsuario), UsuarioModifica, Observaciones, Estado));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ReferenciasPersonales(UsuarioBase Usuario, string Nombre, String Telefono, String Relacion, String Pais, String Provincia, String Distrito, String Corregimiento, String Barrio, String Calle, String Residencia, String NumeroCasa, String ApartadoPostal, String UbicacionFacilResidencia, String Email, String Direccion, String Ciudad)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ReferenciasPersonales(helperUsuario(Usuario, ref wsUsuario), Nombre, Telefono, Relacion, Pais, Provincia, Distrito, Corregimiento, Barrio, Calle, Residencia, NumeroCasa, ApartadoPostal, UbicacionFacilResidencia, Email, Direccion, Ciudad));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje ActualizarReferenciasPersonales(UsuarioBase Usuario, string Nombre, String Telefono, String Relacion, String Pais, String Provincia, String Distrito, String Corregimiento, String Barrio, String Calle, String Residencia, String NumeroCasa, String ApartadoPostal, String UbicacionFacilResidencia, String Email, String Direccion, String Ciudad, int Id)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).ActualizarReferenciasPersonales(helperUsuario(Usuario, ref wsUsuario), Nombre, Telefono, Relacion, Pais, Provincia, Distrito, Corregimiento, Barrio, Calle, Residencia, NumeroCasa, ApartadoPostal, UbicacionFacilResidencia, Email, Direccion, Ciudad, Id));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }


        public Mensaje CambiarEstadoSolicitud(UsuarioBase Usuario)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).CambiarEstadoSolicitud(helperUsuario(Usuario, ref wsUsuario)));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje CambiarEstadoSolicitudCuentaCreada(UsuarioBase Usuario, string UsuarioModifica)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).CambiarEstadoSolicitudCuentaCreada(helperUsuario(Usuario, ref wsUsuario), UsuarioModifica));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }


        public Mensaje AccionistaRepresentanteDirectiva(UsuarioBase Usuario, string Nombre, String Identificacion, String Sexo, String Cargo, String Pais, String Provincia, String Distrito, String Corregimiento, String Nacionalidad, String DireccionPrincipal, String Telefono1, String Telefono2, String Telefono3, string EsJuntaDirectiva, string EsAccionista, string EsRepresentanteLegal, string Tipo_ARD, String Barrio, String Calle, String Residencia, String NumeroCasa, String ApartadoPostal, String UbicacionFacilResidencia, String Email, String Direccion, String Ciudad, DateTime FechaDeNacimiento)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).AccionistaRepresentanteDirectiva(helperUsuario(Usuario, ref wsUsuario), Nombre, Identificacion, Sexo, Cargo, Pais, Provincia, Distrito, Corregimiento, Nacionalidad, DireccionPrincipal, Telefono1, Telefono2, Telefono3, EsJuntaDirectiva, EsAccionista, EsRepresentanteLegal, Tipo_ARD, Barrio, Calle, Residencia, NumeroCasa, ApartadoPostal, UbicacionFacilResidencia, Email, Direccion, Ciudad, FechaDeNacimiento));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje GuardarPEPs(UsuarioBase Usuario, string Nombre, String Identificacion, String Nacionalidad, String TipoRelacion, String Cargo, String Pais)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).GuardarPEPs(helperUsuario(Usuario, ref wsUsuario), Nombre, Identificacion, Nacionalidad, TipoRelacion, Cargo, Pais));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }


        public Mensaje GuardarBeneficiarios(UsuarioBase Usuario, string Nombre, String Identificacion, String Direccion, String Parentesco, String Telefono, String PorcentajeBeneficio, String MenorDeEdad, String NombreTutor, String IdentificacionTutor, String TelefonoTutor, String DireccionTutor)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).GuardarBeneficiarios(helperUsuario(Usuario, ref wsUsuario), Nombre, Identificacion, Direccion, Parentesco, Telefono, PorcentajeBeneficio, MenorDeEdad, NombreTutor, IdentificacionTutor, TelefonoTutor, DireccionTutor));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje GuardarTitulares(UsuarioBase Usuario, String Identificacion, String TipoIdentificacion, String SeguroSocial, String PrimerNombre, String SegundoNombre, String PrimerApellido, String SegundoApellido, String ApellidoDeCasada, String Sexo, String EstadoCivil, DateTime FechaDeNacimiento, String Pais, String Provincia, String Distrito, String Corregimiento, String Barrio, String Calle, String Residencia, String NumeroCasa, String ApartadoPostal, String UbicacionFacilResidencia, String Email, String Telefono1, String Telefono2, String Telefono3, String NombreEmpresa, String CodigoIndustria, String TipoEmpresa, String TipoNegocio, String DireccionEmpleo, String TelefonoOficina, String TelefonoFax, String IdentificacionContraloria, String NumeroDeEmpleado, DateTime FechaIngresoEmpleo, String TiempoDeEmpleo, String RangoSalarial, Decimal SalarioActual, String NivelEducacion, String Profesion, String FuenteDeIngreso, String Cargo, String TipoDeActividad, String CorreoDeEmpleo, String Direccion, String Ciudad, String PaisEmpleo, String ProvinciaEmpleo, String DistritoEmpleo, String CorregimientoEmpleo, String BarrioEmpleo, String CalleEmpleo, String ResidenciaEmpleo, String NoCasaEmpleo, String ApartadoPostalEmpleo, String UbicacionFacilEmpleo, String CiudadEmpleo)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).GuardarTitulares(helperUsuario(Usuario, ref wsUsuario), Identificacion, TipoIdentificacion, SeguroSocial, PrimerNombre, SegundoNombre, PrimerApellido, SegundoApellido, ApellidoDeCasada, Sexo, EstadoCivil, FechaDeNacimiento, Pais, Provincia, Distrito, Corregimiento, Barrio, Calle, Residencia, NumeroCasa, ApartadoPostal, UbicacionFacilResidencia, Email, Telefono1, Telefono2, Telefono3, NombreEmpresa, CodigoIndustria, TipoEmpresa, TipoNegocio, DireccionEmpleo, TelefonoOficina, TelefonoFax, IdentificacionContraloria, NumeroDeEmpleado, FechaIngresoEmpleo, TiempoDeEmpleo, RangoSalarial, SalarioActual, NivelEducacion, Profesion, FuenteDeIngreso, Cargo, TipoDeActividad, CorreoDeEmpleo, Direccion, Ciudad, PaisEmpleo, ProvinciaEmpleo, DistritoEmpleo, CorregimientoEmpleo, BarrioEmpleo, CalleEmpleo, ResidenciaEmpleo, NoCasaEmpleo, ApartadoPostalEmpleo, UbicacionFacilEmpleo, CiudadEmpleo));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje GuardarFirmantes(UsuarioBase Usuario, String Identificacion, String TipoIdentificacion, String SeguroSocial, String PrimerNombre, String SegundoNombre, String PrimerApellido, String SegundoApellido, String ApellidoDeCasada, String Sexo, String EstadoCivil, DateTime FechaDeNacimiento, String Pais, String Provincia, String Distrito, String Corregimiento, String Barrio, String Calle, String Residencia, String NumeroCasa, String ApartadoPostal, String UbicacionFacilResidencia, String Email, String Telefono1, String Telefono2, String Telefono3, String NombreEmpresa, String CodigoIndustria, String TipoEmpresa, String TipoNegocio, String DireccionEmpleo, String TelefonoOficina, String TelefonoFax, String IdentificacionContraloria, String NumeroDeEmpleado, DateTime FechaIngresoEmpleo, String TiempoDeEmpleo, String RangoSalarial, Decimal SalarioActual, String NivelEducacion, String Profesion, String FuenteDeIngreso, String Cargo, String TipoDeActividad, String CorreoDeEmpleo, String Direccion, String Ciudad, String PaisEmpleo, String ProvinciaEmpleo, String DistritoEmpleo, String CorregimientoEmpleo, String BarrioEmpleo, String CalleEmpleo, String ResidenciaEmpleo, String NoCasaEmpleo, String ApartadoPostalEmpleo, String UbicacionFacilEmpleo, String CiudadEmpleo)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioBase wsUsuario = new Banesco.Logica.WSBanesco.UsuarioBase();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).GuardarFirmantes(helperUsuario(Usuario, ref wsUsuario), Identificacion, TipoIdentificacion, SeguroSocial, PrimerNombre, SegundoNombre, PrimerApellido, SegundoApellido, ApellidoDeCasada, Sexo, EstadoCivil, FechaDeNacimiento, Pais, Provincia, Distrito, Corregimiento, Barrio, Calle, Residencia, NumeroCasa, ApartadoPostal, UbicacionFacilResidencia, Email, Telefono1, Telefono2, Telefono3, NombreEmpresa, CodigoIndustria, TipoEmpresa, TipoNegocio, DireccionEmpleo, TelefonoOficina, TelefonoFax, IdentificacionContraloria, NumeroDeEmpleado, FechaIngresoEmpleo, TiempoDeEmpleo, RangoSalarial, SalarioActual, NivelEducacion, Profesion, FuenteDeIngreso, Cargo, TipoDeActividad, CorreoDeEmpleo, Direccion, Ciudad, PaisEmpleo, ProvinciaEmpleo, DistritoEmpleo, CorregimientoEmpleo, BarrioEmpleo, CalleEmpleo, ResidenciaEmpleo, NoCasaEmpleo, ApartadoPostalEmpleo, UbicacionFacilEmpleo, CiudadEmpleo));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        #region UsuariosSistemas

        public Mensaje UsuariosSistema_GuardarInformacionUsuarios(UsuarioSistema UsuariosSistema)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioSistema wsUsuarioSistema = new Banesco.Logica.WSBanesco.UsuarioSistema();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).UsuariosSistema_GuardarInformacionUsuarios(helperUsuarioSistema(UsuariosSistema, ref wsUsuarioSistema)));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje UsuariosSistema_ActualizarInformacionUsuarios(UsuarioSistema UsuariosSistema)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioSistema wsUsuarioSistema = new Banesco.Logica.WSBanesco.UsuarioSistema();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).UsuariosSistema_ActualizarInformacionUsuarios(helperUsuarioSistema(UsuariosSistema, ref wsUsuarioSistema)));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje UsuariosSistema_ActualizarContraseñaUsuario(UsuarioSistema UsuariosSistema)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                Banesco.Logica.WSBanesco.UsuarioSistema wsUsuarioSistema = new Banesco.Logica.WSBanesco.UsuarioSistema();
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).UsuariosSistema_ActualizarContraseñaUsuario(helperUsuarioSistema(UsuariosSistema, ref wsUsuarioSistema)));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje UsuariosSistema_ObtenerInformacionDeUsuarioPorIDUsuario(int IDUsuario, ref DataSet dsDatos)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).UsuariosSistema_ObtenerInformacionDeUsuarioPorIDUsuario(IDUsuario, ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }


        public Mensaje UsuariosSistema_ObtenerInformacionDeUsuarios(ref DataSet dsDatos)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).UsuariosSistema_ObtenerInformacionDeUsuarios(ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje UsuariosSistema_ObtenerInformacionDeUsuarioPorNombreUsuario(string UserName, ref DataSet dsDatos)
        {

            Mensaje retMensaje = new Mensaje();
            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).UsuariosSistema_ObtenerInformacionDeUsuarioPorNombreUsuario(UserName, ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }

            return retMensaje;
        }

        public Mensaje UsuarioSistema_ValidarUsuario(string UserName, string Contraseña)
        {
            Mensaje retMensaje = new Mensaje();
            string contraseña = string.Empty;
            try
            {
                DataSet dsDatos = new DataSet();

                retMensaje = this.UsuariosSistema_ObtenerInformacionDeUsuarioPorNombreUsuario(UserName, ref dsDatos);

                if (retMensaje.Status == Mensaje.EnumStatus.OK)
                {
                    if (dsDatos.Tables.Count > 0)
                    {
                        if (dsDatos.Tables[0].Rows.Count > 0)
                        {
                            if (!String.Equals(Contraseña, dsDatos.Tables[0].Rows[0]["Clave"].ToString()))
                            {
                                throw new Exception();
                            }
                        }
                        else
                            throw new Exception();
                    }

                }

            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        #endregion

        #region Beneficiarios

        public Mensaje Beneficiarion_ObtenerInformacionDeBeneficiariosPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).Beneficiarion_ObtenerInformacionDeBeneficiariosPorIDCliente(IDCliente, ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        public Mensaje Beneficiarios_ActualizarInformacionDeBeneficiarios(int IdBeneficiario, string Nombre, string Identificacion, string Direccion, string Parentesco, string Telefono, int PorcentajeBeneficio, string MenorDeEdad, string NombreTutor, string IdentificacionTutor
     , string TelefonoTutor, string DireccionTutor)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).Beneficiarios_ActualizarInformacionDeBeneficiarios(IdBeneficiario, Nombre, Identificacion, Direccion, Parentesco, Telefono, PorcentajeBeneficio, MenorDeEdad, NombreTutor, IdentificacionTutor
      , TelefonoTutor, DireccionTutor));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }
        #endregion

        #region TitularesFirmantes

        public Mensaje TitularesFirmantes_ObtenerTitularesFirmantesPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).TitularesFirmantes_ObtenerTitularesFirmantesPorIDCliente(IDCliente, ref  dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        public Mensaje TitularesFirmantes_ObtenerFirmantesPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).TitularesFirmantes_ObtenerFirmantesPorIDCliente(IDCliente, ref  dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        public Mensaje TitularesFirmantes_ActualizarInformacionPorIDTitularFirmante(int IDTitularFirmante, string Identificacion, string TipoIdentificacion, string SeguroSocial, string PrimerNombre, string SegundoNombre, string PrimerApellido, string SegundoApellido, string ApellidoDeCasada, string Sexo, string EstadoCivil, DateTime FechaDeNacimiento, string Pais, string Provincia, string Distrito, string Corregimiento, string Barrio, string Calle, string Residencia, string NumeroCasa, string ApartadoPostal, string UbicacionFacilResidencia, string Email, string Telefono1, string Telefono2, string NombreEmpresa, string CodigoIndustria, string TipoEmpresa, string TipoNegocio, string DireccionEmpleo, string IdentificacionContraloria, string NumeroDeEmpleado, DateTime FechaIngresoEmpleo, string TiempoDeEmpleo, string RangoSalarial, decimal SalarioActual, string CorreoDeEmpleo, string NivelEducacion, string Profesion, string FuenteDeIngreso, string Cargo, string TipoDeActividad, string TelefonoOficina, string TelefonoFax)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).TitularesFirmantes_ActualizarInformacionPorIDTitularFirmante(IDTitularFirmante, Identificacion, TipoIdentificacion, SeguroSocial, PrimerNombre, SegundoNombre, PrimerApellido, SegundoApellido, ApellidoDeCasada, Sexo, EstadoCivil, FechaDeNacimiento, Pais, Provincia, Distrito, Corregimiento, Barrio, Calle, Residencia, NumeroCasa, ApartadoPostal, UbicacionFacilResidencia, Email, Telefono1, Telefono2, NombreEmpresa, CodigoIndustria, TipoEmpresa, TipoNegocio, DireccionEmpleo, IdentificacionContraloria, NumeroDeEmpleado, FechaIngresoEmpleo, TiempoDeEmpleo, RangoSalarial, SalarioActual, CorreoDeEmpleo, NivelEducacion, Profesion, FuenteDeIngreso, Cargo, TipoDeActividad, TelefonoOficina, TelefonoFax));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }
        #endregion

        #region DatosComplementarios

        public Mensaje DatosComplementariosUsuarios_SeleccionarInformacionPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).DatosComplementariosUsuarios_SeleccionarInformacionPorIDCliente(IDCliente, ref  dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        public Mensaje DatosComplementarios_RegistrarInformacionDatosComplementarios(int IDCliente, string InstruccionesEspeciales, int IDUsuarioCreacion, DateTime FecCreacion, int IDUsuarioModificacion, DateTime FecModificacion)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).DatosComplementarios_RegistrarInformacionDatosComplementarios(IDCliente, InstruccionesEspeciales, IDUsuarioCreacion, FecCreacion, IDUsuarioModificacion, FecModificacion));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }


        public Mensaje DatosComplementarios_ActualizarInformacionCliente(int IDCliente, string InstruccionesEspeciales, int IDUsuarioModificacion, DateTime FecModificacion)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).DatosComplementarios_ActualizarInformacionCliente(IDCliente, InstruccionesEspeciales, IDUsuarioModificacion, FecModificacion));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }
        #endregion

        #region HistorialCreditoAPC

        public Mensaje HistorialCreditoAPC_RegistrarInformacionConsulta(int IDUsuario, string IdentificacionCliente, string TipoIdentificacionCliente, string InformacionObtenida
           , string UsuarioAPCConsulta, DateTime FechaConsulta, DateTime FechaModificacion)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).HistorialCreditoAPC_RegistrarInformacionConsulta(IDUsuario, IdentificacionCliente, TipoIdentificacionCliente, InformacionObtenida
           , UsuarioAPCConsulta, FechaConsulta, FechaModificacion));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        #endregion

        #region GrabadoDeInformacionCoreBancario
        //private Mensaje GrabarInformacionClienteIBSCoreBancario(Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICSInfoCliente, ref Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICSInfoClienteResultado)
        //{
        //    Mensaje retMensaje = new Mensaje();

        //    ServicesIntegracionCoreBancaria.IntegracionAccountServices objIAS = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionAccountServices();
        //    //ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices informacionClienteResultado = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices();
        //    //ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices informacionClienteResultadoWS = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices();
        //    try
        //    {
        //        //Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIICStoIICSWS(ref objIICSInfoCliente, ref informacionClienteResultado);
        //        ////Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIICSTEST(ref informacionClienteResultado);

        //        //retMensaje = HelperWSIBSCoreBancario.ConvertirMensaje((new ServicesIntegracionCoreBancaria.IntegracionAccountServices()).GrabarInformacionClienteIBS(ref informacionClienteResultado, ref informacionClienteResultadoWS));


        //        //objIAS.GrabarInformacionClienteIBS(ref informacionClienteResultado, ref informacionClienteResultadoWS);
        //        if (retMensaje.Status == Mensaje.EnumStatus.OK) { }
        //        // Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIICSWStoIICS(ref objIICSInfoClienteResultado, ref   informacionClienteResultadoWS);
        //    }
        //    catch (Exception ex)
        //    {
        //        retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
        //        retMensaje.Error = ex.Message.ToString();
        //        retMensaje.MensajeTecnico = ex.Message;
        //    }

        //    return retMensaje;
        //}

        //private Mensaje ActualizarInformacionClienteIBSCoreBancario(Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICSInfoCliente, ref Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICSInfoClienteResultado)
        //{
        //    Mensaje retMensaje = new Mensaje();

        //    ServicesIntegracionCoreBancaria.IntegracionAccountServices objIAS = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionAccountServices();
        //    //ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices informacionClienteResultado = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices();
        //    //ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices informacionClienteResultadoWS = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices();
        //    try
        //    {
        //        //Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIICStoIICSWSActualizacion(ref objIICSInfoCliente, ref informacionClienteResultado);
        //        ////Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIICSTEST(ref informacionClienteResultado);

        //        //retMensaje = HelperWSIBSCoreBancario.ConvertirMensaje((new ServicesIntegracionCoreBancaria.IntegracionAccountServices()).ActualizarInformacionClienteIBS(ref informacionClienteResultado, ref informacionClienteResultadoWS));


        //        //objIAS.GrabarInformacionClienteIBS(ref informacionClienteResultado, ref informacionClienteResultadoWS);
        //        if (retMensaje.Status == Mensaje.EnumStatus.OK) { }
        //        //Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIICSWStoIICS(ref objIICSInfoClienteResultado, ref   informacionClienteResultadoWS);
        //    }
        //    catch (Exception ex)
        //    {
        //        retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
        //        retMensaje.Error = ex.Message.ToString();
        //        retMensaje.MensajeTecnico = ex.Message;
        //    }

        //    return retMensaje;
        //}

        //private Mensaje BuscarInformacionClienteIBSCoreBancario(string Identificacion, ref Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICSInfoClienteResultado)
        //{
        //    Mensaje retMensaje = new Mensaje();

        //    //ServicesIntegracionCoreBancaria.IntegracionAccountServices objIAS = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionAccountServices();
        //    //ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices informacionClienteResultado = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices();
        //    //ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices informacionClienteResultadoWS = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServices();
        //    try
        //    {
        //        string Usuario = Banesco.Logica.Properties.Settings.Default.Banes_UserDefault_ServiceCoreBancarioConsulta.ToString();
        //        //Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIICSTEST(ref informacionClienteResultado);

        //        //retMensaje = HelperWSIBSCoreBancario.ConvertirMensaje((new ServicesIntegracionCoreBancaria.IntegracionAccountServices()).ConsultarInformacionClienteIBS(Usuario, Identificacion, ref informacionClienteResultadoWS));


        //        //objIAS.GrabarInformacionClienteIBS(ref informacionClienteResultado, ref informacionClienteResultadoWS);
        //        //if (retMensaje.Status == Mensaje.EnumStatus.OK)
        //        //    Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIICSWStoIICS(ref objIICSInfoClienteResultado, ref   informacionClienteResultadoWS);
        //    }
        //    catch (Exception ex)
        //    {
        //        retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
        //        retMensaje.Error = ex.Message.ToString();
        //        retMensaje.MensajeTecnico = ex.Message;
        //    }

        //    return retMensaje;
        //}

        //private Mensaje BuscarInformacionClienteNaturalIBSCoreBancario(string user, string idNumber, string idCountry, ref Banesco.Integracion.Logica.IntegracionInformacionCustomerServicesCNatural objIICSInfoClienteResultado)
        //{
        //    Mensaje retMensaje = new Mensaje();

        //    ServicesIntegracionCoreBancaria.IntegracionAccountServices objIAS = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionAccountServices();
        //    ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServicesCNatural informacionClienteResultado = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServicesCNatural();
        //    ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServicesCNatural informacionClienteResultadoWS = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionCustomerServicesCNatural();
        //    try
        //    {
        //        string Usuario = Banesco.Logica.Properties.Settings.Default.Banes_UserDefault_ServiceCoreBancarioConsulta.ToString();
        //        //Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIICSTEST(ref informacionClienteResultado);

        //        retMensaje = HelperWSIBSCoreBancario.ConvertirMensaje((new ServicesIntegracionCoreBancaria.IntegracionAccountServices()).ConsultarInformacionClinteNaturalIBS(user,idNumber,idCountry, ref informacionClienteResultadoWS));


        //        //objIAS.GrabarInformacionClienteIBS(ref informacionClienteResultado, ref informacionClienteResultadoWS);
        //        if (retMensaje.Status == Mensaje.EnumStatus.OK)
        //            Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIICSCNWStoIICSCN(ref objIICSInfoClienteResultado, informacionClienteResultadoWS);
        //    }
        //    catch (Exception ex)
        //    {
        //        retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
        //        retMensaje.Error = ex.Message.ToString();
        //        retMensaje.MensajeTecnico = ex.Message;
        //    }

        //    return retMensaje;
        //}

        //private Mensaje GrabarInformacionCuentaCliente(Banesco.Integracion.Logica.IntegracionInformacionAccountServices objIIAS, ref Banesco.Integracion.Logica.IntegracionInformacionAccountServices objIIASResultado)
        //{
        //    Mensaje retMensaje = new Mensaje();
        //    //Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionAccountServices objIIASWSInput = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionAccountServices();
        //    //Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionAccountServices objIIASWSResultado = new Banesco.Logica.ServicesIntegracionCoreBancaria.IntegracionInformacionAccountServices();

        //    try
        //    {
        //        //Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIIASToIIASWS(objIIAS, ref objIIASWSInput);
        //        //retMensaje = HelperWSIBSCoreBancario.ConvertirMensaje((new ServicesIntegracionCoreBancaria.IntegracionAccountServices()).GenerarNuevaCuentaIBS(ref objIIASWSInput, ref objIIASWSResultado));

        //        //if (retMensaje.Status == Mensaje.EnumStatus.OK)
        //        //    Banesco.Logica.HelperWSIBSCoreBancario.ConvertirObjetoIIASWSToIIAS(ref objIIASResultado, objIIASWSResultado);
        //    }
        //    catch (Exception ex)
        //    {
        //        retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
        //        retMensaje.Error = ex.Message.ToString();
        //        retMensaje.MensajeTecnico = ex.Message;
        //    }

        //    return retMensaje;
        //}


        public void IniciarProcesoGrabacionCoreBancario(int IDCliente, ref string[] Respuestas, object Additional, object FirmTit)
        {
            try
            {

                Mensaje retMensaje = new Mensaje();
                DataSet dsDatosCliente = new DataSet();
                DataSet dsDatosFirmantes = new DataSet();
                DataSet dsDatosTitulares = new DataSet();
                UsuarioBase informacionCliente = new UsuarioBase();
                //bool existeInformacionCliente = false;
                informacionCliente.IdSolicitud = IDCliente;
                retMensaje = ObtenerDatosCliente(ref informacionCliente);
                IDCliente = informacionCliente.IdCliente;
                //Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICSResultado;
                //Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICSResultadoConsulta;
                System.Collections.ArrayList listaDeRespuestas = new System.Collections.ArrayList();


                #region Cliente

                DataSet dsClienteCore = new DataSet();
                WSBanesco.WSBanesco wsBan = new Banesco.Logica.WSBanesco.WSBanesco();
                string idCliente_Default = string.Empty;

                var ClienteXml = wsBan.ObtenerClienteCore(IDCliente, ref dsClienteCore);
                var result = dsClienteCore.Tables[0].AsEnumerable().Select(c => new string[] 
                { c.Field<string>("Identificacion"), c.Field<string>("XMLmessage"), 
                    c.Field<string>("TipoCliente"), c.Field<string>("Pais"), 
                    c.Field<string>("NoRegistroDeSociedad") }).FirstOrDefault();

                TipoCliente tipoCL = new TipoCliente();
                if (result[2] == "CORPO")
                {
                    idCliente_Default = result[4];
                    tipoCL = TipoCliente.Juridico;
                }
                else
                {
                    idCliente_Default = result[0];
                    tipoCL = TipoCliente.Natural;
                }

                Banesco.Logica.Core bankCore = new Core(idCliente_Default, "USER", result[3], tipoCL, result[1]);
                List<string> MsgRespuestas = new List<string>();
                bool AccountInserted = false;
                MsgRespuestas = bankCore.StartCustomerFlow(Additional, FirmTit,  out AccountInserted);

                if (AccountInserted)
                {
                    //Tu logica
                    CambiarEstadoSolicitudCuentaCreada(informacionCliente, "");

                }
                //Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICS = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                ////HelperWSIBSCoreBancario.ConvertirObjetoIICS(informacionCliente, ref objIICS);
                ////HelperWSIBSCoreBancario.ConvertirObjetoIICSTEST(ref objIICS);
                //objIICSResultado = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                //objIICSResultadoConsulta = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                //retMensaje = BuscarInformacionClienteIBSCoreBancario(objIICS.idNumber, ref objIICSResultadoConsulta);

                //if (String.IsNullOrEmpty(objIICSResultadoConsulta.customerNumber))
                //{
                //    objIICSResultado = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();

                //    retMensaje = GrabarInformacionClienteIBSCoreBancario(objIICS, ref objIICSResultado);
                //    //listaDeRespuestas.Add("CoreBancario :: Cliente :: " + retMensaje.Status.ToString() + "-" + objIICSResultado.firstLastName + "-" + objIICSResultado.firstName + "-" + objIICSResultado.customerNumber);
                //    if (retMensaje.Status == Mensaje.EnumStatus.OK)
                //        listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICS.firstName + "</Nombre><Apellido>" + objIICS.firstLastName + "</Apellido><Estado>Registro exitoso</Estado><Valor>Cliente: " + objIICSResultado.customerNumber + "</Valor></RESUMEN>");
                //    else
                //        listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICS.firstName + "</Nombre><Apellido>" + objIICS.firstLastName + "</Apellido><Estado>Registro No exitoso</Estado><Valor>Favor verifique los datos suministrados</Valor></RESUMEN>");
                //}
                //else
                //{
                //    existeInformacionCliente = true;


                //    //objIICS = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                //    //objIICS = objIICSResultado;
                //    //HelperWSIBSCoreBancario.ConvertirObjetoIICSActualizacion(informacionCliente, ref objIICSResultadoConsulta);
                //    objIICSResultado = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();

                //    retMensaje = ActualizarInformacionClienteIBSCoreBancario(objIICSResultadoConsulta, ref objIICSResultado);

                //    if (retMensaje.Status == Mensaje.EnumStatus.OK)
                //        listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICS.firstName + "</Nombre><Apellido>" + objIICS.firstLastName + "</Apellido><Estado>Acutalización exitosa</Estado><Valor>Cliente: " + objIICSResultado.customerNumber + "</Valor></RESUMEN>");
                //    else
                //        listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICS.firstName + "</Nombre><Apellido>" + objIICS.firstLastName + "</Apellido><Estado>Actualizacio no exitosa</Estado><Valor>Favor verifique los datos suministrados</Valor></RESUMEN>");

                //}
                //if (retMensaje.Status == Mensaje.EnumStatus.OK)
                //{
                //    if (!existeInformacionCliente)
                //    {
                //        #region CreacionCuenta
                //        Banesco.Integracion.Logica.IntegracionInformacionAccountServices objIIAS = new Banesco.Integracion.Logica.IntegracionInformacionAccountServices();
                //        Banesco.Integracion.Logica.IntegracionInformacionAccountServices objIIASResultado = new Banesco.Integracion.Logica.IntegracionInformacionAccountServices();
                //        //HelperWSIBSCoreBancario.EstablecerInformacionAperturaCuenta(objIICSResultado, ref objIIAS);
                //        retMensaje = GrabarInformacionCuentaCliente(objIIAS, ref objIIASResultado);

                //        if (retMensaje.Status == Mensaje.EnumStatus.OK)
                //            //listaDeRespuestas.Add("CoreBancario :: Cliente :: " + objIICSResultado.firstName + " " + objIICSResultado.firstLastName + " :: Estado :: " + retMensaje.Status.ToString() + " Número de cuenta :: " + objIIASResultado.accountNumber);
                //            listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICSResultado.firstName + "</Nombre><Apellido>" + objIICSResultado.firstLastName + "</Apellido><Estado>Apertura de cuenta exitoso</Estado><Valor>Cuenta: " + objIIASResultado.accountNumber + "</Valor></RESUMEN>");
                //        else
                //            listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICSResultado.firstName + "</Nombre><Apellido>" + objIICSResultado.firstLastName + "</Apellido><Estado>Apertura de cuenta no exitoso</Estado><Valor>Favor verifique los datos suministrados</Valor></RESUMEN>");


                //        #endregion


                //    }
                //}

                #region CreacionTarjetaVisa   ---- Hacer Cambios
                //usuario:IBS 10 digitos
                //canal:0000 AN
                //producto:NONE
                //sucursal:numerico de 3 digitos 
                //cliente:numerico de 9 digitos
                //cuenta:numerico de 12 digitos
                //nombre:12digitos
                //apellido:13digitos
                //agua: NONE o 123|321
                //elektra: NONE o 123|321
                //edemet: NONE o 123|321
                //telefono: NONE 0 123|321

                //string usuario = "ycg0197";
                //string canal = "0022";
                //string producto = "NONE";
                //string sucursal = "000";
                //string cliente = objIICSResultado.customerNumber;
                //string cuenta = objIIASResultado.customerNumber;
                //string nombre = objIICSResultado.firstName;
                //string apellido = objIICSResultado.firstLastName;
                //string agua = "NONE";
                //string elektra = "NONE";
                //string edemet = "NONE";
                //string telefono = "NONE";
                //if (String.Equals(informacionCliente.TipoCliente, "PERSO"))
                //{
                //    string usuario = "ycg0197";
                //    string canal = "0022";
                //    string producto = "NONE";
                //    string sucursal = "000";
                //    string cliente = "600001688";
                //    string cuenta = "201000011362";
                //    string nombre = "NONE";
                //    string apellido = "NONE";
                //    string agua = "NONE";
                //    string elektra = "NONE";
                //    string edemet = "NONE";
                //    string telefono = "NONE";


                //    string respuesta = CreateVISA(usuario, canal, producto, sucursal, cliente, cuenta, nombre, apellido, agua, elektra, edemet, telefono);

                //    listaDeRespuestas.Add("<RESUMEN><Nombre>" + "NOMBRE" + "</Nombre><Apellido>" + "APELLIDO" + "</Apellido><Estado>Apertura de tarjeta</Estado><Valor>Cuenta: " + respuesta + "</Valor></RESUMEN>");

                //}


                #endregion

                #endregion

                #region ClientesTitularesYFirmantes
                //#region Titulares
                //solo se procesara si el cliente se grabo satisfactoriamente
                //DataSet dsDatosTitularesTemp;
                //UsuarioBase objUsuario = new UsuarioBase();
                //Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICSTitulares;
                //Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICSTitularesConsulta;

                //retMensaje = TitularesFirmantes_ObtenerTitularesFirmantesPorIDCliente(informacionCliente.IdSolicitud, ref dsDatosTitulares);
                //if (dsDatosTitulares.Tables.Count > 0)
                //{
                //    if (dsDatosTitulares.Tables[0].Rows.Count > 0)
                //    {
                //        foreach (DataRow myRow in dsDatosTitulares.Tables[0].Rows)
                //        {
                //            retMensaje = new Mensaje();
                //            dsDatosTitularesTemp = new DataSet();
                //            DataTable myTable = dsDatosTitulares.Tables[0].Clone();
                //            myTable.ImportRow(myRow);
                //            dsDatosTitularesTemp.Tables.Add(myTable);
                //            objIICSTitulares = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                //            objIICSTitularesConsulta = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                //            objIICSResultado = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                //            // HelperWSIBSCoreBancario.ConvertirObjetoIICS(dsDatosTitularesTemp, ref objIICSTitulares);
                //            retMensaje = BuscarInformacionClienteIBSCoreBancario(objIICSTitulares.idNumber, ref objIICSTitularesConsulta);

                //            if (String.IsNullOrEmpty(objIICSTitularesConsulta.customerNumber))
                //            {

                //                retMensaje = GrabarInformacionClienteIBSCoreBancario(objIICSTitulares, ref objIICSResultado);

                //                if (retMensaje.Status == Mensaje.EnumStatus.OK)
                //                    listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICSTitulares.firstName + "</Nombre><Apellido>" + objIICSTitulares.firstLastName + "</Apellido><Estado>Registro exitoso</Estado><Valor>Cliente: " + objIICSResultado.customerNumber + "</Valor></RESUMEN>");
                //                //listaDeRespuestas.Add("CoreBancario :: Cliente :: " + objIICSResultado.firstName + " " + objIICSResultado.firstLastName + " :: Estado :: " + retMensaje.Status.ToString() + " Número de cliente :: " + objIICSResultado.customerNumber);
                //                else
                //                    listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICSTitulares.firstName + "</Nombre><Apellido>" + objIICSTitulares.firstLastName + "</Apellido><Estado>Registro no exitoso</Estado><Valor>Favor verifique los datos suministrados</Valor></RESUMEN>");
                //                //listaDeRespuestas.Add("CoreBancario :: Cliente :: " + objIICSResultado.firstName + " " + objIICSResultado.firstLastName + " :: Estado :: Ha fallado el proceso,por favor verifique los datos suministrado");
                //            }
                //            else
                //            {
                //                //objIICSTitulares = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                //                //objIICSTitulares.customerNumber = objIICSTitularesConsulta.customerNumber;
                //                //objIICSTitulares.idNumber = objIICSTitularesConsulta.idNumber;
                //                //HelperWSIBSCoreBancario.ConvertirObjetoIICSActualizacion(dsDatosTitularesTemp, ref objIICSTitularesConsulta);
                //                objIICSResultado = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();

                //                retMensaje = ActualizarInformacionClienteIBSCoreBancario(objIICSTitularesConsulta, ref objIICSResultado);
                //                if (retMensaje.Status == Mensaje.EnumStatus.OK)
                //                    listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICSTitulares.firstName + "</Nombre><Apellido>" + objIICSTitulares.firstLastName + "</Apellido><Estado>Actualización exitosa</Estado><Valor>Cliente: " + objIICSResultado.customerNumber + "</Valor></RESUMEN>");
                //                //listaDeRespuestas.Add("CoreBancario :: Cliente :: " + objIICSResultado.firstName + " " + objIICSResultado.firstLastName + " :: Estado :: " + retMensaje.Status.ToString() + " actualizacion para número de cliente :: " + objIICSResultado.customerNumber);
                //                else
                //                    listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICSTitulares.firstName + "</Nombre><Apellido>" + objIICSTitulares.firstLastName + "</Apellido><Estado>Actualización no exitosa</Estado><Valor>Favor verifique los datos suministrados</Valor></RESUMEN>");
                //                //listaDeRespuestas.Add("CoreBancario :: Cliente :: " + objIICSResultado.firstName + " " + objIICSResultado.firstLastName + " :: Estado :: Ha fallado el proceso,por favor verifique los datos suministrado");

                //            }
                //        }
                //    }
                //}
                //#endregion

                #region Firmantes
                //int totalFirmantesPermitidos = 10;
                //int totalFirmantes = 0;
                //DataSet dsDatosFirmantesTemp;
                //Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICSFirmantes;
                //Banesco.Integracion.Logica.IntegracionInformacionCustomerServices objIICSFirmantesConsulta;


                //retMensaje = TitularesFirmantes_ObtenerFirmantesPorIDCliente(informacionCliente.IdSolicitud, ref dsDatosFirmantes);
                //if (dsDatosFirmantes.Tables.Count > 0)
                //{
                //    if (dsDatosFirmantes.Tables[0].Rows.Count > 0)
                //    {
                //        foreach (DataRow myRow in dsDatosFirmantes.Tables[0].Rows)
                //        {
                //            if (totalFirmantes <= 10)
                //            {
                //                retMensaje = new Mensaje();
                //                dsDatosFirmantesTemp = new DataSet();
                //                DataTable myTable = dsDatosFirmantes.Tables[0].Clone();
                //                myTable.ImportRow(myRow);
                //                dsDatosFirmantesTemp.Tables.Add(myTable);
                //                objIICSFirmantes = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                //                objIICSFirmantesConsulta = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                //                objIICSResultado = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                //                //HelperWSIBSCoreBancario.ConvertirObjetoIICS(dsDatosFirmantesTemp, ref objIICSFirmantes);

                //                retMensaje = BuscarInformacionClienteIBSCoreBancario(objIICSFirmantes.idNumber, ref objIICSFirmantesConsulta);

                //                if (String.IsNullOrEmpty(objIICSFirmantesConsulta.customerNumber))
                //                {
                //                    retMensaje = GrabarInformacionClienteIBSCoreBancario(objIICSFirmantes, ref objIICSResultado);
                //                    //listaDeRespuestas.Add("CoreBancario::Firmantes-" + retMensaje.Status.ToString() + "-" + objIICSResultado.firstLastName + "-" + objIICSTitulares.firstName);

                //                    if (retMensaje.Status == Mensaje.EnumStatus.OK)
                //                        listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICSFirmantes.firstName + "</Nombre><Apellido>" + objIICSFirmantes.firstLastName + "</Apellido><Estado>Registro exitoso</Estado><Valor>Cliente: " + objIICSResultado.customerNumber + "</Valor></RESUMEN>");
                //                    //listaDeRespuestas.Add("CoreBancario :: Cliente :: " + objIICSResultado.firstName + " " + objIICSResultado.firstLastName + " :: Estado :: " + retMensaje.Status.ToString() + " Número de cliente :: " + objIICSResultado.customerNumber);
                //                    else
                //                        listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICSFirmantes.firstName + "</Nombre><Apellido>" + objIICSFirmantes.firstLastName + "</Apellido><Estado>Registro no exitoso</Estado><Valor>Favor verifique los datos suministrados</Valor></RESUMEN>");
                //                    //listaDeRespuestas.Add("CoreBancario :: Cliente :: " + objIICSResultado.firstName + " " + objIICSResultado.firstLastName + " :: Estado :: Ha fallado el proceso,por favor verifique los datos suministrado");

                //                }
                //                else
                //                {

                //                    //HelperWSIBSCoreBancario.ConvertirObjetoIICSActualizacion(dsDatosFirmantesTemp, ref objIICSFirmantesConsulta);

                //                    objIICSResultado = new Banesco.Integracion.Logica.IntegracionInformacionCustomerServices();
                //                    retMensaje = ActualizarInformacionClienteIBSCoreBancario(objIICSFirmantesConsulta, ref objIICSResultado);

                //                    if (retMensaje.Status == Mensaje.EnumStatus.OK)
                //                        listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICSFirmantes.firstName + "</Nombre><Apellido>" + objIICSFirmantes.firstLastName + "</Apellido><Estado>Actualización exitosa</Estado><Valor>Cliente: " + objIICSResultado.customerNumber + "</Valor></RESUMEN>");
                //                    //listaDeRespuestas.Add("CoreBancario :: Cliente :: " + objIICSResultado.firstName + " " + objIICSResultado.firstLastName + " :: Estado :: " + retMensaje.Status.ToString() + " actualizacion para número de cliente :: " + objIICSResultado.customerNumber);
                //                    else
                //                        listaDeRespuestas.Add("<RESUMEN><Nombre>" + objIICSFirmantes.firstName + "</Nombre><Apellido>" + objIICSFirmantes.firstLastName + "</Apellido><Estado>Actualización no exitosa</Estado><Valor>Favor verifique los datos suministrados</Valor></RESUMEN>");
                //                    //listaDeRespuestas.Add("CoreBancario :: Cliente :: " + objIICSResultado.firstName + " " + objIICSResultado.firstLastName + " :: Estado :: Ha fallado el proceso,por favor verifique los datos suministrado");

                //                }
                //                totalFirmantes++;
                //            }
                //        }
                //    }
                //}
                #endregion
                #endregion

                Respuestas = MsgRespuestas.ToArray();

            }
            catch (Exception ex)
            { }
        }

        private static string CreateVISA(string usuario, string canal, string producto, string sucursal, string cliente, string cuenta, string nombre, string apellido, string agua, string elektra, string edemet, string telefono)
        {


            Banesco.Logica.ServicesIntegracionVisa.VisaServiceService objVisaServicesTarjeta = new Banesco.Logica.ServicesIntegracionVisa.VisaServiceService();
            string respuesta = objVisaServicesTarjeta.getTarjetaVisa(usuario, canal, producto, sucursal, cliente, cuenta, nombre, apellido, agua, elektra, edemet, telefono);
            return respuesta;
        }

        #endregion

        #region AutenticacionGruposUsuarios
        /// <summary>
        /// Se autentica si el usuario pertenece a la red de banesco y a su si posee los permisos necesarios para accesar al portal
        /// </summary>
        /// <param name="Dominio"></param>
        /// <param name="Usuario"></param>
        /// <param name="Contraseña"></param>
        /// <returns></returns>
        public bool UsuarioAutenticado(string Dominio, string Usuario, string Contraseña)
        {
            bool resultadoObtenido = false;
            try
            {
                WSBanescoAutenticacion.WSBanescoAutenticacion objWSBA = new Banesco.Logica.WSBanescoAutenticacion.WSBanescoAutenticacion();
                resultadoObtenido = objWSBA.AutenticarUsuario(Dominio, Usuario, Contraseña);
            }
            catch (Exception ex)
            { }

            return resultadoObtenido;

        }
        #endregion

        #region PEPs
        public Mensaje PEPS_ObtenerPEPsPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).PEPS_ObtenerPEPsPorIDCliente(IDCliente, ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }
        #endregion

        #region AccionistaRepresentanteDirectiva
        public Mensaje AccionistaRepresentanteDirectiva_ObtenerAccionistaRepresentanteDirectivaPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).AccionistaRepresentanteDirectiva_ObtenerAccionistaRepresentanteDirectivaPorIDCliente(IDCliente, ref dsDatos));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }


        public Mensaje AccionistaRepresentanteDirectiva_ActualizarInformacionPorIDACR(int ID_ACR, string Identificacion, string NombreDirectivo, string Cargo, string Pais, string Provincia, string Distrito, string Corregimiento, string Sexo, string Nacionalidad, string DireccionPrincipal, string Barrio, string Calle, string Residencia, string NumeroCasa, string UbicacionFacilResidencia, string TipoIdentificacion, string Email, string Telefono, string TelefonoOficina, string TelefonoCelular, string ApartadoPostal, string Direccion, string Ciudad, DateTime FechaDeNacimiento)
        {
            Mensaje retMensaje = new Mensaje();

            try
            {
                retMensaje = HelperWSBanesco.ConvertirMensaje((new WSBanesco.WSBanesco()).AccionistaRepresentanteDirectiva_ActualizarInformacionPorIDACR(ID_ACR, Identificacion, NombreDirectivo, Cargo, Pais, Provincia, Distrito, Corregimiento, Sexo, Nacionalidad, DireccionPrincipal, Barrio, Calle, Residencia, NumeroCasa, UbicacionFacilResidencia, TipoIdentificacion, Email, Telefono, TelefonoOficina, TelefonoCelular, ApartadoPostal, Direccion, Ciudad, FechaDeNacimiento));
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.StackTrace;
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }
        #endregion

    }



}
